﻿/*
Nombre:                         GenericoDao
Descripcion:                    Comparte y contiene metodos genericos para los casos de prueba
Dependencias:                 
Fecha de creación:              20090320
Autor:                          VMORALES
Fecha de modifcación:         
Responsable:                  
Num. de modifcación:            0
*/

#region Imports

using Common.Logging;
using System.Text;

#endregion

namespace Electrocucaracha.AdminPersonal.DAO.Test
{
    public abstract class GenericoDao<K, T> where T : class
    {
        #region Constantes

        #endregion

        #region Miembros

        protected static readonly ILog log = LogManager.GetLogger(typeof(K));

        #endregion

        #region Propiedades

        #endregion

        #region Constructores

        #endregion

        #region Funciones

        protected void ImprimirInfo(string info)
        {
            log.Info(info);
        }//ImprimirInfo

        protected void ImprimirDebug(string info)
        {
            log.Debug(info);
        }//ImprimirInfo

        public abstract string Formatear(T entidad);

        protected void ImprimirDebug(string accion, T entidad)
        {
            ImprimirDebug(accion + "\n" + Formatear(entidad));
        }//ImprimirInfo

        protected void ImprimirDebug(string accion, T[] entidades)
        {
            StringBuilder entidadesFormateadas;

            if (entidades.Length > 0)
            {
                entidadesFormateadas = new StringBuilder();
                foreach (T entidad in entidades)
                {
                    entidadesFormateadas.AppendLine(Formatear(entidad));
                }
                ImprimirDebug(accion + "\n" + entidadesFormateadas);
            }
        }//ImprimirInfo

        #endregion

    }//GenericoDao
}//Electrocucaracha.AdminPersonal.DAO.Test